//
//  MainTabBar.swift
//  HJWeibo
//
//  Created by mac on 16/1/10.
//  Copyright © 2016年 mac. All rights reserved.
//

import UIKit

class MainTabBar: UITabBar {

   //手写代码  会调用这个构造函数  它是自定义的入口
    override init(frame: CGRect) {
         super.init(frame: frame)
        //添加加号按钮
        addSubview(plusBtn)
        
    }
    
    
    //重写init(frame) 系统会默认当前类的对象 只能通过手写代码的方式创建
    //如果程序员通过 xib或sb 创建对象，程序就会崩溃
    //表示对象通过 xib或sb 创建会调用下面‘init(coder:)’方法
    required init?(coder aDecoder: NSCoder) {
        //默认报错
        fatalError("init(coder:) has not been implemented")
    }
    
    
    //修改tabBar子视图的位置，大小，并将中间位置预留出来
    override func layoutSubviews() {
        //super 一定不能忘记调用父类的方法
        super.layoutSubviews()
        //print(subviews)
        
        //定义item的宽度
        let w = self.bounds.width / 5
        let h = self.bounds.height
        let rect = CGRect(x: 0, y: 0, width: w, height: h)
        //定义索引
        var index: CGFloat = 0
        
        //遍历子视图
        for subView in subviews {
            //2.获取所有的UITabBarButton类型的对象
            if subView.isKindOfClass(NSClassFromString("UITabBarButton")!) {
                //print(subView)
                //不同类型的 数据不能直接运算
                subView.frame = CGRectOffset(rect, index * w, 0)
//                if index == 1 {
//                    index++
//                }
//                index++
                //上面判断可用三目运算简化
                index += (index == 1 ? 2 : 1)
            }
        }
        
        //修改加号按钮的位置
        plusBtn.frame = CGRectOffset(rect, 2 * w, 0)
        //让中间按钮往上移一点 （将它移放到线图层的上面）
//        plusBtn.frame = CGRectOffset(rect, 2 * w, -18)
//        bringSubviewToFront(plusBtn)
        
        
    }
    
    //懒加载 获取加号按钮
    lazy var plusBtn: UIButton = UIButton(imageName: "tabbar_compose_icon_add", backImageName: "tabbar_compose_button")
    
    
    
//    
//    {
//        //UIButton() 会得到一个自定义类型的按钮
//        let btn = UIButton()
//        
//        //设置按钮的背景图片
//        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: .Normal)
//        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: .Highlighted)
//        
//        //设置按钮图片
//        btn.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: .Normal)
//        btn.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: .Highlighted)
//        
//        //自适应大小
//        btn.sizeToFit()
//       
//        return btn
//    }()
//  
    
    
    
    
    
    
    
    
}
